package SwordFingerOffer;

public class Q60_PlayDice {

    //把n个骰子扔在地上，所有骰子朝上一面的点数之和为s。输入n，打印出s的所有可能的值出现的概率。
    //你需要用一个浮点数数组返回答案，其中第 i 个元素代表这 n 个骰子所能掷出的点数集合中第 i 小的那个的概率。

//    以三个骰子为例：三个骰子掷出4的概率等于两个骰子掷出1的概率乘以一个骰子掷出3的概率，加上两个骰子掷出2的概率乘以一个骰子掷出2的概率，加上两个骰子掷出3的概率乘以一个骰子掷出1的概率，而其中两个骰子的情况又可以继续分解。显然这里用到动态规划的思路，用dp[n][k]表示n个骰子掷出k点数的概率，则上述例子即为dp[3][4] = dp[2][1] * dp[1][3] + dp[2][2] * dp[1][2] + dp[2][3] * dp[1][1]。
//    和大多数题解先算出某个点数的所有情况数量，再除以总数不一样，这里不会有数字过大的问题，完全不用考虑题目的骰子数量在11以内的限制。
//

//    public double[] dicesProbability(int n) {
//
//
//
//    }
}
